package io.scnb.coupon.customer;

import feign.Logger;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.reactive.function.client.WebClient;

// Configuration注解声明配置类
@org.springframework.context.annotation.Configuration
public class Configuration {
    
    @Bean   // 声明一个受Spring容器托管的Bean
    @LoadBalanced   // 为构造器注入特殊的Filter，实现负载均衡功能
    public WebClient.Builder register() {
        return WebClient.builder();
    }

    /**
     * OpenFeign日志级别设置：
     * NONE：不记录任务信息，默认的日志级别
     * BASIC：只记录服务请求的URL， HTTP Method， 响应状态码和服务调用的执行时间
     * HEADERS：在BASIC的基础上，还记录了请求和响应中的HTTP Headers
     * FULL：在HEADERS级别的基础上，还记录了服务请求和服务响应中的Body和metadata，该级别记录了最完整的调用信息
     */
    @Bean
    Logger.Level feignLogger() {
       return Logger.Level.FULL; 
    }
    
}
